草庐IT

c++ - 最终类的用例

全部标签

ruby - 没有类的模块中实例方法的目的是什么?

设想以下Ruby模块:moduleFoodefinst_methodputs"CalledFoo.inst_method"enddefself.class_methodputs"CalledFoo.class_method"endend显然Foo.class_method可以在没有任何类实例的情况下被调用。但是,Foo.inst_method发生了什么?是否可以在不包含/扩展类的情况下调用Foo.inst_method?免责声明:问题的重点不是解决实际问题。我只是想提高我对Ruby对象系统的理解。 最佳答案 模块中实例方法的主要目的

ruby - 猴子补丁核心类的替代品

我对Ruby还是个新手,基本上只是在读完Cooper的书后编写我的第一个微程序。我被指出了避免猴子修补的方向,但问题是我不知道实现相同行为的替代方案是什么。基本上,我想添加一个可供每个字符串对象访问的新方法。明显的猴子修补方法是:classStringdefdo_magic...magic...endend我记得有一种使用String.send的方法。但我不记得它是如何完成的,也不记得我是在哪里读到它的。谁能指出任何替代方案,让我仍然可以使该方法可用于String类和子对象? 最佳答案 任何其他的方式都会使猴子修补的语法更加笨拙。有

ruby - 正确的 Assert_Raise 单元测试和异常类的使用

我正在研究Exercise49ofLearnRubytheHardWay练习要求为提供的每个函数编写单元测试。我正在测试的项目之一是是否引发了适当的异常。建议我们为此使用assert_raise。这是我正在测试的代码:classParserError下面是函数parse_verb的测试:deftest_parse_verblist_one=[Pair.new(:verb,'go'),Pair.new(:noun,'king')]assert_equal(parse_verb(list_one),Pair.new(:verb,'go'))list_two=[Pair.new(:noun,

c - Ruby 解释器的嵌入 API 的文档在哪里?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我正在寻找有关将Ruby解释器嵌入到C或C++程序以及用于该目的的API的全面的在线文档资源。Pickaxe书中关于此的部分非常好,但我的版本指的是Ruby1.8,我对当前的ruby​​版本范围很感兴趣,即1.8.x、1.9.x和2.0,并且有很多跨该版本范围的嵌入处理之间的差异。作为引用,有问题的Ruby解释器是来自http://www.ruby-lang.org/

ruby - 使用 Cucumber 或 RSpec+Selenium 创建最终用户文档?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion有没有人尝试从您的cucumber场景中创建最终用户(可能在线,可能打印)帮助/文档?或者使用RSpec和SeleniumRC的功能截取屏幕截图以用于文档?对于Cucumber,我想象的是这样的:Scenario:IfyouwanttoaddalinkGivenIamontheeditblogpostpageWhenIpressthe"addlink"buttonAn

ruby - 我可以拥有没有方法类的 RSpec 吗

我只是在写一些我不想放在类中的算法方法。所以我只是把它们放在我的ruby​​文件中。但是我无法弄清楚如何编写测试或更具体地使用describe:xxx因为我没有要放在主要描述之后的类名。有什么想法吗? 最佳答案 您可以在describe语句后放置任何字符串:describe"SomethingYouWantToTest"do#Yourspecshereend 关于ruby-我可以拥有没有方法类的RSpec吗,我们在StackOverflow上找到一个类似的问题:

ruby-on-rails - Rails 最终用户模板引擎 : Liquid vs Mustache vs. 其他?

我正在创建一项服务,我想在其中允许最终用户编辑网页的HTML模板,允许访问特定“变量”以包含在模板中。我知道liquid正是为此目的而设计的,它是安全的(至少相对而言),并且在大量生产中使用。但是,我发现与Mustache之类的语言相比,这种语言对于最终用户来说相当复杂。Mustache听起来不错,但我担心安全问题……它是否曾经用于最终用户模板?基本上我正在寻找一个模板引擎,我可以使用w/Rails为最终用户提供:安全-不允许用户执行代码……至少不允许在服务器上执行。用户将被允许插入客户端javascript。功能强大-允许最终用户使用提供的“变量”并在#1的上下文中创建他们可以想象的

c - Ruby C 扩展开发人员的命名约定

在用C为ruby​​编写扩展时,我对遵循正确的命名约定很感兴趣。具体来说,我指的是将_p添加到谓词的函数名称以及为变量添加前缀m代表模块,c代表类等等。例如,如果我们想在C语言中定义一个像下面这样的谓词方法,我们应该在定义该方法的函数中使用_p作为后缀。classMyClassdefawesome?trueendend在C中:staticVALUEmy_extension_my_class_awesome_p(VALUEself){returnQtrue;}voidInit_my_extension(void){VALUEcMyClass=rb_define_class("MyClas

ruby - 仅当前类的实例方法列表

我有一个O类的实例o。我想知道o的功能。o.methods会给我很多方法。所以我通常做o.methods-Object.instance_methods。但这并不简洁。我想做类似o.methods-o.class.superclass.instance_methods的事情。也就是说,只有O本身定义的方法。还有其他办法吗? 最佳答案 您可以使用方法Module#instance_methods:o.class.instance_methods(false)警告文档似乎是错误的,它说:Withnoargument,orwithanar

Ruby:有没有办法获取类的封闭模块常量?

我正在用Ruby进行一些元编程,我需要在模块内动态生成一个同级类。这样做时,我想在模块上调用const_set,但直到运行时我才知道要调用哪个模块常量。一个例子:给定的类Foo::Bar::BazFoo::Quox::Quack我希望能够调用这样的函数(这里过于简单):defgenerate_fromklassmod=klass.enclosing_module#当使用Baz调用时,我最终想要的是一个定义为的新类Foo::Bar::GeneratedClassName还有嘎嘎,我想要Foo::Quox::GeneratedClassName我知道的唯一方法是拆分klass.name,然